using System;
using SheLife.Domain.Common;

namespace SheLife.Domain.Entities
{
    /// <summary>
    /// 成长目标实体类
    /// </summary>
    public class GrowthGoal : BaseEntity
    {
        /// <summary>
        /// 用户ID
        /// </summary>
        public Guid UserId { get; set; }

        /// <summary>
        /// 模板ID
        /// </summary>
        public Guid? TemplateId { get; set; }

        /// <summary>
        /// 目标名称
        /// </summary>
        public string Name { get; set; }

        /// <summary>
        /// 目标描述
        /// </summary>
        public string Description { get; set; }

        /// <summary>
        /// 目标分类
        /// </summary>
        public string Category { get; set; }

        /// <summary>
        /// 目标标签
        /// </summary>
        public string Tags { get; set; }

        /// <summary>
        /// 目标图标
        /// </summary>
        public string Icon { get; set; }

        /// <summary>
        /// 目标颜色
        /// </summary>
        public string Color { get; set; }

        /// <summary>
        /// 目标难度
        /// </summary>
        public string Difficulty { get; set; }

        /// <summary>
        /// 开始日期
        /// </summary>
        public DateTime StartDate { get; set; }

        /// <summary>
        /// 目标日期
        /// </summary>
        public DateTime TargetDate { get; set; }

        /// <summary>
        /// 完成日期
        /// </summary>
        public DateTime? CompleteDate { get; set; }

        /// <summary>
        /// 目标进度
        /// </summary>
        public decimal Progress { get; set; }

        /// <summary>
        /// 目标状态
        /// </summary>
        public string Status { get; set; }

        /// <summary>
        /// 目标内容
        /// </summary>
        public string Content { get; set; }

        /// <summary>
        /// 目标步骤
        /// </summary>
        public string Steps { get; set; }

        /// <summary>
        /// 目标提示
        /// </summary>
        public string Tips { get; set; }

        /// <summary>
        /// 目标示例
        /// </summary>
        public string Examples { get; set; }

        /// <summary>
        /// 目标资源
        /// </summary>
        public string Resources { get; set; }

        /// <summary>
        /// 目标评分
        /// </summary>
        public decimal Rating { get; set; }

        /// <summary>
        /// 目标反馈
        /// </summary>
        public string Feedback { get; set; }

        /// <summary>
        /// 是否公开
        /// </summary>
        public bool IsPublic { get; set; }

        /// <summary>
        /// 是否置顶
        /// </summary>
        public bool IsTop { get; set; }

        /// <summary>
        /// 排序
        /// </summary>
        public int Sort { get; set; }

        /// <summary>
        /// 备注
        /// </summary>
        public string Remark { get; set; }

        /// <summary>
        /// 创建人ID
        /// </summary>
        public Guid CreatedBy { get; set; }

        /// <summary>
        /// 更新人ID
        /// </summary>
        public Guid? UpdatedBy { get; set; }

        // 导航属性
        public SystemUser User { get; set; }
        public GrowthGoalTemplate Template { get; set; }
        public ICollection<GrowthGoalRecord> Records { get; set; }
    }
}